Méthodes de type off-policy avec approximations

2. Méthodes semi-gradient

Nous allons commencer par étudier comment les méthodes off-policy que vous avons vues dans la formation d'initiation à l'apprentissage par renforcement (qui étaient utilisées dans le cadre d'un environnement avec un nombre d'états finis) peuvent être adaptées à l'utilisation de fonctions d'approximation et en utilisant la méthode du semi-gradient. Ces méthodes utilisent le ratio d'échantillonnage préférentiel pour modifier la mise à jour des cibles mais ne gèrent pas la seconde problématique concernant la transformation de la mise à jour des distributions. Ce sont donc des méthodes qui peuvent diverger dans certains cas mais qui sont cependant très souvent fonctionnelles.

Dans la formation d'initiation à l'apprentissage par renforcement, nous avons vu différentes méthodes de type off-policy dans le module n°7 (Méthodes par différences temporelles n-Step). Pour les utiliser sous la forme du semi-gradient, il suffit de remplacer les mises à jour des valeurs des états $V$ ou des actions $Q$ qui était sous formes tabulaires en une mise à jour du vecteur poids $\textbf{w}$ en utilisant les approximations des fonctions des valeurs d'état $\hat v$ des actions $\hat q$ et leur gradient associé.

2.1. Ratio d'échantillonnage préférentiel

Rappelons tout d'abord l'expression du ratio d'échantillonnage préférentiel:

$${\rho _t} = \frac{{\pi \left( {{A_t}|{S_t}} \right)}}{{b\left( {{A_t}|{S_t}} \right)}}$$

2.2. Algorithme semi-gradient simple pas TD(0) off-policy

Pour l'algorithme simple pas TD(0), la mise à jour du vecteur poids reprend donc l'algorithme semi-gradient on-policy correspondant auquel on ajoute simplement le ratio d'échantillonnage préférentiel pour adapter les mises à jour des cibles. Pour calculer la valeur des états :

  • ${\textbf{w}_{t + 1}} = {\textbf{w}_t} + \alpha {\rho _t}\left[ {{R_{t + 1}} + \gamma \hat v\left( {{S_{t + 1}},{\textbf{w}_t}} \right) - \hat v\left( {{S_t},{\textbf{w}_t}} \right)} \right]\nabla v\left( {{S_t},{\textbf{w}_t}} \right) \quad$ (tâche épisodique)
  • ${\textbf{w}_{t + 1}} = {\textbf{w}_t} + \alpha {\rho _t}\left[ {{R_{t + 1}} - \overline {{R_t}} + \hat v\left( {{S_{t + 1}},{\textbf{w}_t}} \right) - \hat v\left( {{S_t},{\textbf{w}_t}} \right)} \right]\nabla v\left( {{S_t},{\textbf{w}_t}} \right) \quad$ (tâche continue sans facteur de remise)

Pour les valeurs d'actions, les mises à jour se font de la manière suivante:

  • ${\textbf{w}_{t + 1}} = {\textbf{w}_t} + \alpha \rho_t \left[ {{R_{t + 1}} + \gamma \hat q\left( {{S_{t + 1}},{A_{t + 1}},{\textbf{w}_t}} \right) - \hat q\left( {{S_t},{A_t},{\textbf{w}_t}} \right)} \right]\nabla \hat q\left( {{S_t},{A_t},{\textbf{w}_t}} \right) \quad$ (tâche épisodique)
  • ${\textbf{w}_{t + 1}} = {\textbf{w}_t} + \alpha \rho_t \left[ {{R_{t + 1}} - \overline {{R_t}} + \hat q\left( {{S_{t + 1}},{A_{t + 1}},{\textbf{w}_t}} \right) - \hat q\left( {{S_t},{A_t},{\textbf{w}_t}} \right)} \right]\nabla \hat q\left( {{S_t},{A_t},{\textbf{w}_t}} \right) \quad$ (tâche continue)

2.3. Algorithme semi-gradient TD n-step off-policy

Pour l'algorithme TD n-step, la mise à jour du vecteur poids pour calculer les valeurs des états se fait de la manière suivante:

$${\textbf{w}_{t + n}} = {\textbf{w}_{t + n - 1}} + \alpha {\rho _{t:t + n}}\left[ {{G_{t:t + n}} - \hat v\left( {{S_t},{\textbf{w}_{t + n - 1}}} \right)} \right]\nabla \hat v\left( {{S_t},{\textbf{w}_{t + n - 1}}} \right)$$

Avec:

$${\rho _{t:t + n}} = \prod\limits_{k = t}^{\min \left( {t + n,T} \right)} {\frac{{\pi \left( {{A_k}|{S_k}} \right)}}{{b\left( {{A_k}|{S_k}} \right)}}}$$

Avec:

  • ${G_{t:t + n}} = {R_{t + 1}} + \gamma {R_{t + 2}} + ... + {\gamma ^{n - 1}}{R_{t + n}} + {\gamma ^n}\hat v\left( {{S_{t + n}},{\textbf{w}_{t + n - 1}}} \right) \quad $ (tâche épisodique)
  • ${G_{t:t + n}} = {R_{t + 1}} - \overline {{R_{t+n-1}}} + {R_{t + 2}} - \overline {{R_{t + n-1}}} + ... + {R_{t + n}} - \overline {{R_{t + n - 1}}} + \hat v\left( {{S_{t + n}},{\textbf{w}_{t + n - 1}}} \right) \quad$ (tâche continue)

Pour calculer les valeurs des actions on procède de la manière suivante:

$${\textbf{w}_{t + n}} = {\textbf{w}_{t + n - 1}} + \alpha {\rho _{t:t + n}}\left[ {{G_{t:t + n}} - \hat q\left( {{S_t},A_t,{\textbf{w}_{t + n - 1}}} \right)} \right]\nabla \hat q\left( {{S_t},A_t,{\textbf{w}_{t + n - 1}}} \right)$$

Avec:

  • ${G_{t:t + n}} = {R_{t + 1}} + \gamma {R_{t + 2}} + ... + {\gamma ^{n - 1}}{R_{t + n}} + {\gamma ^n}\hat q\left( {{S_{t + n}},A_{t+n},{\textbf{w}_{t + n - 1}}} \right) \quad $ (tâche épisodique)

$\quad \quad$ si $t+n < T$ et ${G_{t:t + n}} = G_t$ si $t+n \ge T$.

  • ${G_{t:t + n}} = {R_{t + 1}} - \overline {{R_{t+n-1}}} + {R_{t + 2}} - \overline {{R_{t + n-1}}} + ... + {R_{t + n}} - \overline {{R_{t + n - 1}}} + \hat q\left( {{S_{t + n}},A_{t+n},{\textbf{w}_{t + n - 1}}} \right) \quad$ (tâche continue)